The present invention generally pertains to the field of computer networking. More particularly, the present invention is related to multicast packet handing.
Computers have become an integral tool used in a wide variety of different applications, such as in finance and commercial transactions, computer-aided design and manufacturing, health-care, telecommunication, education, etc. Computers are finding new applications as a result of advances in hardware technology and rapid development in software technology. Furthermore, a computer system""s functionality is dramatically enhanced by coupling stand-alone computers together to form a computer network. In a computer network, users may readily exchange files, share information stored on a common database, pool resources, and communicate via e-mail and via video teleconferencing.
Computer networks can be arranged in numerous configurations comprising a variety of network types. Some of the most popular types of networks comprise Ethernet (coaxial cable or twisted-pair cable), token ring, Fiber Distributed Data Interface (FDDI), Frame Relay, Integrated Services Digital Network (ISDN), X.25, Synchronous Data Link Control (SDLC). Typically, these networks are arranged in local area networks (LANs) and wide area networks (WANs). Usually, LANs are distinguished from WANs based upon the geographical area they cover and sometimes the number of users connected to the network. For example, a group of personal computers (PCs) in a home or single business site (location) usually communicate with each other over a LAN. Groups of PCs disposed remote from one another, such as those in different homes, different companies, or different branch offices of the same company, typically communicate with each other over a WAN.
Presently, an Institute of Electrical and Electronics Engineering (IEEE) draft standard, 802.1Q, defines a mechanism to identify and classify packets in a VLAN (virtual local area network) environment. Currently, the standard defines a method to classify packets into VLANs (if they are not already classified) based on the incoming ports, also known as port-based VLAN classification system. In a typical configuration containing various intermediate devices (i.e. switches, routers, and the like), VLANs map one-to-one to subnets. Additionally, such VLANs are used to segregate device ports (e.g. client device ports) into separate broadcast domains. Such an approach contains the broadcast and unknown packets to only those ports that are in the same subnet. While this mechanism works fine for unicast packets, multicast forwarding is quite extensive. That is, conventional intermediate devices operating under existing protocols are often forced to replicate multicast packets.
More specifically, in a conventional prior art approach, an intermediate device receives multicast group membership registrations in different VLANs and records this information for forwarding purposes in a forwarding database. In 802.1Q-compliant intermediate devices, the MAC (media access control) address and the receiving VLAN identification (VID) are used together to index such a database to identify the outbound ports. In existing prior art approaches, when an intermediate device receives a multicast packet, the intermediate device must search the forwarding database for all the members in all possible VLANs. The conventional intermediate device then forwards the multicast packet separately to each registered VLAN. Such a conventional method is complicated and expensive to implement in ASICs (application specific integrated circuit). As yet a more egregious disadvantage, such a conventional method also frequently results in wasteful replication of a multicast packet. That is, the conventional intermediate device must make multiple copies of the same multicast packet and then forward the multiple copies out a single port to which registered members in multiple VLANs are coupled. In some attempts to alleviate this problem, practitioners have resort to easier (but slower) software based forwarding of multicast packets.
In addition to the disadvantages associated with replication of multicast packets, the required lookups in the forwarding database have significant drawbacks associated therewith. That is, conventional approaches require the intermediate device to perform at least one lookup in the forwarding database for all potentially registered VLANs. These lookups are expensive in CPU (central processing unit) cycles, memory space, and intermediate device performance.
Thus, a need exists for a method and system which eliminates unnecessary replication of multicast packets. Still another need exists for a method and system which reduces superfluous expensive lookups in multicast registration tables. Still another need exists for a system and method which meets the above-listed needs but which operates effectively in a VLAN environment.
The present invention provides a method and system which eliminates unnecessary replication of multicast packets. The present invention further provides a method and system which reduces superfluous expensive lookups in multicast registration tables. The present invention also provides a system and method which achieves the above-listed accomplishments and which operates effectively in a VLAN environment.
In one embodiment, the present invention receives, at a first intermediate device, multicast registration information for a first client in one VLAN. Next, the present invention receives, at the first intermediate device, multicast registration information for a second client in a second VLAN. The present invention then creates an aggregated list of the multicast registration information for the first client in one VLAN and the second client in a second VLAN. In this embodiment, the present invention forwards the aggregated list of the multicast registration information for the first client in one VLAN and the second client in a second VLAN to a second intermediate device. Then, when handling a multicast packet at the second intermediate device, the present invention accesses the aggregated list of the multicast registration information for the first client in one VLAN and the second client in a second VLAN. As a result, the present invention allows the second intermediate device to perceive having only a single VLAN registered to receive the multicast packet. Hence, the present invention allows the second intermediate device to forward a single multicast packet which will later be supplied to registered member ports. In so doing, the present invention prevents unnecessary replication of multicast packets and avoids superfluous expensive lookups in multicast registration tables.
In another embodiment, the present invention includes the features of the above embodiment and specifically recites that the aggregated list is comprised of an aggregation of an egress list for a port of the first intermediate device to which the first client in one VLAN is coupled and an egress list for a port of the second intermediate device to which a second client in a second VLAN is coupled.
In still another embodiment, the present invention includes the features of the first-listed above embodiment and specifically recites that when handling a multicast packet which is to be transmitted between the first client in one VLAN and the second client in a second VLAN, the first intermediate device is adapted to transmit the multicast packet between the first client in one VLAN and the second client in a second VLAN without intervention by the second intermediate device.